package search;

import java.util.ArrayList;
import java.util.List;

/**
 * create by yongli on 2021-07-14 08:36
 */

public class Lc1818 {
    public static void main(String[] args) {
    }

    /**
     *  对这个问题，分解，找相似
     *  比如数组中，去掉一个数，然后找最大数
     * @param nums1
     * @param nums2
     * @return
     */

    /**
     * 这种思路不对，但是把它写出来了
     * @param nums1
     * @param nums2
     * @return
     */
    public int minAbsoluteSumDiff(int[] nums1, int[] nums2) {

        // 数学归纳法，找规律
        int n = nums1.length;
        int[] nums3 = new int[n];
        for(int i=0;i<n;i++){
            nums3[i] = Math.abs(nums1[i]-nums2[i]);
        }
        int maxId =0;
        for(int i=0;i<n;i++){
            if(nums3[i]>nums3[maxId]){
                maxId= i;
            }
        }
        List<Integer> maxIds = new ArrayList<>();
        for(int i=0;i<n;i++){
            if(nums3[i]==nums3[maxId]){
                maxIds.add(i);
            }
        }

        int min=(int)1e6;
        for(int maxId2:maxIds){
            int min2 = Math.abs(nums2[maxId2]-nums1[0]);
            for(int j=1;j<n;j++){
                if(Math.abs(nums2[maxId2]-nums1[j])<min2){
                    min2=Math.abs(nums2[maxId2]-nums1[j]);
                }
            }
            if(min2<min){
                min = min2;
            }
        }
        nums3[maxIds.get(0)] = min;
        // 其实也可以不用long
        long sum =0;
        long divider = (long)(1e9+7);
        for(int i=0;i<n;i++){
            sum = (sum +nums3[i])%(divider);
        }
        return (int)sum;
    }

    public void test(){
        // 10e9已经超过int, 1+0的个数
        // 10^9
        System.out.println(1e1);
        System.out.println(1e2);
        int a = (int)(10e9+6);
        int aa = (int)(1e9+7);
        System.out.println(aa);
        long b = (long)(10e9+7);
        System.out.println(a);
        System.out.println(Integer.MAX_VALUE);
        System.out.println(b);

        long c = a+b;
        System.out.println(c);
    }
}
